CC=g++
CFLAGS=-g -I/usr/include
#CFLAGS+=-DNOENCRYPT
#CFLAGS+=-DNOCERT
#CFLAGS+=-DDEBUG
LD=-L/usr/lib -lssl -lcrypto -lgsl -lgslcblas -lrt

APPS= customer merchant carrier creditco envelope_ex poisson_ex
OBJS=$(OBJDIR)/common.o $(OBJDIR)/server.o $(OBJDIR)/client.o $(OBJDIR)/Decryptor.o $(OBJDIR)/Encryptor.o $(OBJDIR)/verify.o
INCLUDES= common.h server.h client.h Decryptor.h Encryptor.h
OBJDIR=.obj
all: prep
	$(MAKE) $(APPS)

prep:
	@mkdir -p $(OBJDIR)	
  
  
customer:$(OBJDIR)/customer.o $(OBJS) $(INCLUDES)
	$(CC) $(CFLAGS) $< $(OBJS) -o $@ $(LD)

merchant: $(OBJDIR)/merchant.o $(OBJS) $(INCLUDES)
	$(CC) $(CFLAGS) $< $(OBJS) -o $@ $(LD)

carrier: $(OBJDIR)/carrier.o $(OBJS) $(INCLUDES)
	$(CC) $(CFLAGS) $< $(OBJS) -o $@ $(LD)

creditco: $(OBJDIR)/creditco.o $(OBJS) $(INCLUDES)
	$(CC) $(CFLAGS) $< $(OBJS) -o $@ $(LD)

envelope_ex: $(OBJS)
	$(CC) $(CFLAGS) -I./ code_examples/enveloping.cpp $(OBJS) -o $@ $(LD)

poisson_ex: $(OBJS)
	$(CC) $(CFLAGS) -I./ code_examples/gsl_poisson.cpp $(OBJS) -o $@ $(LD)

  $(OBJDIR)/%.o : %.cpp 
	$(CC) $(CFLAGS) -c $^ -o $@

clean:	
	rm $(OBJDIR)/*.o $(APPS)
